/***************************************************************
 *
 * Filename：TCPServe.h
 * Abstract：the design of TCP
 * version ：1.0
 *
 * Copyright (c) 2011 SCUT DT&P FY&XC
 *
***************************************************************/

#ifndef TCPSERVE_H
#define TCPSERVE_H

#include <QtGui>
#include <QtNetwork>
#include <QDebug>
#include <QTcpServer>
#include "ipmsg.h"
#include "FileSendWindow.h"

class TCPServer : public QObject
{
        Q_OBJECT

public:
        TCPServer(QString filename,FileSendWindow* Filesw);
        //MessagePRO *msgmng;
        void initTCPServer();
        void refused();

        QTcpServer *tcpServer;
        QTcpSocket *clientConnection;
        FileSendWindow *FileS;
        qint64 TotalBytes;;  //存放总大小信息
        qint64 bytesWritten;    //已发送数据的大小
        qint64 bytesToWrite;    //剩下数据的大小
        qint64 fileNameSize;  //文件名的大小信息
        QString fileName;   //存放文件名
        QString currentFile;
        QFile *localFile;   //本地文件
        QByteArray outBlock;   //数据缓冲区
        qint64 loadSize;

private:
        QTime time; //计数器


signals:
        void finishSendFile(QString);

public slots:
        void start();   //开始监听
        void acceptConnection();    //建立连接
        void updateClientProgress(qint64 numBytes);    //更新进度条，接收数据
        void displayError(QAbstractSocket::SocketError socketError);    //显示错误
        void stopsendfile();

};
#endif // TCPSERVE_H
